FAQ
__TOC__ = General = = Installation = How is it installed? 5D Mark II As shown in the video, a file named 'magiclantern.fir' is copied to the CF card and "Update firmware" is selected from the menu. The running firmware shuts down, loads the file into RAM and starts it running. Rather than reflashing the ROMs, this new program starts the DryOS boot process to install itself. 550D, 60D, 600D (Unified branch) See Unified/Install; the procedure is slightly different. 500D See 500D/T1i_Installation. Does it modify the camera? Nothing is written into the ROMs. When the camera reboots, the RAM image is flushed and the bootloader FROMUTIL at 0xFFFF0000 starts the pristine copy in ROM at 0xff810000. After any reboot (or even powersave), you must select the "Update firmware" menu item. When autoboot is enabled, a flag in permanently set in the camera that allows it to boot automatically from the AUTOEXEC.BIN file on the CF card. Is it dangerous? I haven't bricked my camera yet, but that is no guarantee. It doesn't write to the ROMs at all, so it should be fairly safe, but anytime software is interacting with hardware there is possibility of significant damage. The FROMUTILITY appears to have a way to reflash even a bricked camera, but I don't know how to access the console. Does it void my warranty? It is very similar to CHDK, which has a FAQ: Does using the CHDK program void your warranty?: First, please bear in mind that CHDK comes with no warranty for any use; you use it at your own risk. What follows is just a few thoughts, and is not a legal opinion. Many believe that using the CHDK does not harm your warranty, since it is said to be loaded into the memory only temporarily (turn off the cam and it's gone completely) and that it leaves the original camera firmware untouched They include an email exchange with Canon: After researching this software on the internet it appears that CHDK doesn't make any actual changes to your camera. If you delete the CHDK software from your memory card, or if you choose not to activate the CHDK software on the card (or remove and replace the batteries), then the camera will behave absolutely normally - nothing has been (or ever is) changed, so the warranty is not affected. The Magic Lantern firmware is distributed with NO WARRANTY and NO GUARANTEES are provided. It might work. It might not. It hasn't destroyed any cameras yet, but who knows. How will it interact with future upgrades from Canon? We have updated it to work on the 1.0.7, 1.1.0, 2.0.3, 2.0.4 and 2.0.8 firmware versions on 5D Mark II. It is a manual process to find the symbols in each new version, although tools like patchdiff2, Gensig finsig and GPL Tools/match.py make it much easier. Each new version must be statically linked against addresses in the firmware ROM as if it were a library, which requires locating the entire set of symbols. Despite this tight integration, Magic Lantern software does not contain any Canon code. It is entirely a clean-room implementation that runs along side the official Canon firmware as a separate DryOS task. = Features = It won't boot! There are three likely causes: # Wrong firmware version: Make sure you have the correct Canon firmware for the Magic Lantern build you are using # Auto-sensor clean is enabled: It messes with the boot process and must be turned off # Third-party batteries: The error message also messes with the boot process and prevents Magic Lantern from starting. How do I bring up the Magic Lantern menus? 5D Mark II Press Picture Style button once LiveView is displayed to bring up the Magic Lantern menu. Once in the menu: * Use the joystick to move between items. * Click the joystick to select items to toggle them. * Press Picture Style to exit the menu. * If Zebras are not turned on, the menu may not be cleared; press digital zoom or Menu to refresh the display 550D, 60D, 600D, 500D, 50D, 1100D (Unified ML) * Press ERASE (550D/60D/600D,500D), Picture Style (50D) or AV (1100D) to bring up the Magic Lantern menu. * Use arrow keys or joystick to navigate. * Use SET, PLAY and Q (on 500D, LV) to change values. * Press DISP or INFO button to get help. For more info, see Unified/UserGuide#Magic_Lantern_menu. How do I save the gain/zebra/etc configuration? The configuration can be saved by going to the Debug menu and selecting Save Config. This will write the current configuration to the magiclantern.cfg file. Any comments in the file will be removed. Alternatively you can edit this file with a text editor on your computer. How about 5, 7, 9 or more bracketing shots? Release 0.1.6 has support for . Eventually this will also be supported with the scripting interface and you will be able to write your own bracketing algorithm to vary shutter, ISO, aperture and focus. Scripts will be triggered via a menu item, IR remote or perhaps a USB remote. What are the next steps? Most of the current projects are being tracked in the issue tracking system. You can add new proposals to the tracker and perhaps a developer will be interested in working on it. Simultaneous HDMI and LCD display? Since the HDMI and LCD are different resolutions (1080i and 480p), it is unlikely that they can be run at the same time. It might be possible to switch the HDMI into a low-res mode and have both of them simultaneously, but this would make focusing on the HDMI monitor very difficult. What about feature X? See the issue tracking system] for details. Why is the recorded audio so quiet? The 5D has low-quality analog amps, so it is best to boost it in post. It will be no noisier than if we boosted it in the camera with digital gain, but if we boost too much in the camera, it's impossible to get a low noise result with a hot mic or preamp. We have selected the best balance available with a single value. Why is the internal mic disabled? You can enable it by selecting Mic Input INT in the Audio menu. The AGC can be turned off, but the quality of the internal mic is still very low. Why is the external video disabled? For a similar reason -- the hotplug task that handles switching between different video modes was disabled so that the A/V jack could be used for audio monitoring. There are reports of audio noise when NTSC video is being output on the jack, so HDMI is likely to be the only supported output format. First second of audio on the first take Due to the way Canon's firmware rewrites the audio registers, there is one second of bad audio on the first take after a reboot. This is and may be fixed in a later release if we can rewrite the part of mvrRecStart() that does it. = Technical = Does it work with chdk? I've used some of the CHDK tools to learn about Canon firmware files, but this is all new code. They have done an amazing job of supporting hundreds of different camera models across multiple architectures and operating systems. At some point in the future chdk might be ported to the 5D Mark 2, but this project is much more focused on just the 5D Mark II and the needs of film makers. CHDK is a great project for Canon's Point-and-Shoot cameras. Without their initial effort in understanding DryOS, Canon's firmware files and the boot process, I wouldn't have been able to make as much progress as quickly as I did. While I was able to use modern tools to analyze dump files of ROM images thanks to their efforts, they got started bitbanging a UART via the status LED on a camera body. That's truly hardcore. Why the name change? Originally the project was called just "5D Mark Free", but out of an abundance of caution it seemed best to avoid Canon's trademarks. What is it written in? Can I get the source? The firmware hack is in C, with some inline assembly for boot strapping. The firmware build tools are in Perl and use Makefiles for dependency tracking. You need an arm-linux-elf build of gcc and binutils. Most of the code analysis has been done with objdump, strings and the IDA demo. No tech support will be provided. If it breaks you get to keep both pieces. If you know what all of these terms mean and aren't scared of the possibility of breaking your camera, you can download the Magic Lantern firmware source code. How do I get a ROM0.bin firmware image? I've written a modified version of the 1.0.7 firmware image that uses the embedded DryOS to dump out the firmware. Since it is a derived work of Canon's firmware, I am not comfortable distributing it. There is no reason that this could not be added to the new 5d2-ml.fir file once we have custom menus, which should avoid any IP issues. We do not distribute ROM images, nor IDAPro .idb files, since they are verbatim copies of Canon's copyrighted code. You can generate the ROM images from your own camera and use the .map file to apply our names to the file inside of IDA. What are all of the 0xff81beef things and funny names like EP_SetManualMovieMode()? These are the addresses in the official ROM firmware for different functions and names that we have given to functions. If you load the ROM0.bin image into IDA or use objdump you can trace through the instructions to determine how the software works. If you are just using the camera, they don't need to mean anything to you, but they give other developers a place to look in the firmware image. The function names are unlikely to be the same as the ones in Canon's source code, which we have never seen. We name functions based on what they seem to do, or debugging / diagnostic strings embedded in the function. It isn't perfect, but it is sufficient to locate the important things for task creation, file I/O and GUI operation. Is it legal? This is a "clean room" / "black box" reverse engineering effort and as such should be ok. Frequently asked questions about reverse engineering addresses the legality question; producing an interoperable product is one of the explicit allowances enshrined in law. = Misc = Has Canon contacted you? No one at Canon has contacted me regarding Magic Lantern or software development for the 5D/7D/1D series of cameras. I am very eager to discuss the project with them, however, so if you have any technical contacts inside of Canon's software team, please put them in touch with me. Who is that guy in the corner? He is the chemist Robert Cornelius and the self-portrait photograph is considered to be the first picture of a person.